package com.item.dao.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class BookExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BookExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIsbnIsNull() {
            addCriterion("ISBN is null");
            return (Criteria) this;
        }

        public Criteria andIsbnIsNotNull() {
            addCriterion("ISBN is not null");
            return (Criteria) this;
        }

        public Criteria andIsbnEqualTo(String value) {
            addCriterion("ISBN =", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnNotEqualTo(String value) {
            addCriterion("ISBN <>", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnGreaterThan(String value) {
            addCriterion("ISBN >", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnGreaterThanOrEqualTo(String value) {
            addCriterion("ISBN >=", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnLessThan(String value) {
            addCriterion("ISBN <", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnLessThanOrEqualTo(String value) {
            addCriterion("ISBN <=", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnLike(String value) {
            addCriterion("ISBN like", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnNotLike(String value) {
            addCriterion("ISBN not like", value, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnIn(List<String> values) {
            addCriterion("ISBN in", values, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnNotIn(List<String> values) {
            addCriterion("ISBN not in", values, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnBetween(String value1, String value2) {
            addCriterion("ISBN between", value1, value2, "isbn");
            return (Criteria) this;
        }

        public Criteria andIsbnNotBetween(String value1, String value2) {
            addCriterion("ISBN not between", value1, value2, "isbn");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andReportoryIsNull() {
            addCriterion("reportory is null");
            return (Criteria) this;
        }

        public Criteria andReportoryIsNotNull() {
            addCriterion("reportory is not null");
            return (Criteria) this;
        }

        public Criteria andReportoryEqualTo(Integer value) {
            addCriterion("reportory =", value, "reportory");
            return (Criteria) this;
        }

        public Criteria andReportoryNotEqualTo(Integer value) {
            addCriterion("reportory <>", value, "reportory");
            return (Criteria) this;
        }

        public Criteria andReportoryGreaterThan(Integer value) {
            addCriterion("reportory >", value, "reportory");
            return (Criteria) this;
        }

        public Criteria andReportoryGreaterThanOrEqualTo(Integer value) {
            addCriterion("reportory >=", value, "reportory");
            return (Criteria) this;
        }

        public Criteria andReportoryLessThan(Integer value) {
            addCriterion("reportory <", value, "reportory");
            return (Criteria) this;
        }

        public Criteria andReportoryLessThanOrEqualTo(Integer value) {
            addCriterion("reportory <=", value, "reportory");
            return (Criteria) this;
        }

        public Criteria andReportoryIn(List<Integer> values) {
            addCriterion("reportory in", values, "reportory");
            return (Criteria) this;
        }

        public Criteria andReportoryNotIn(List<Integer> values) {
            addCriterion("reportory not in", values, "reportory");
            return (Criteria) this;
        }

        public Criteria andReportoryBetween(Integer value1, Integer value2) {
            addCriterion("reportory between", value1, value2, "reportory");
            return (Criteria) this;
        }

        public Criteria andReportoryNotBetween(Integer value1, Integer value2) {
            addCriterion("reportory not between", value1, value2, "reportory");
            return (Criteria) this;
        }

        public Criteria andPriceSellingIsNull() {
            addCriterion("price_selling is null");
            return (Criteria) this;
        }

        public Criteria andPriceSellingIsNotNull() {
            addCriterion("price_selling is not null");
            return (Criteria) this;
        }

        public Criteria andPriceSellingEqualTo(Double value) {
            addCriterion("price_selling =", value, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceSellingNotEqualTo(Double value) {
            addCriterion("price_selling <>", value, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceSellingGreaterThan(Double value) {
            addCriterion("price_selling >", value, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceSellingGreaterThanOrEqualTo(Double value) {
            addCriterion("price_selling >=", value, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceSellingLessThan(Double value) {
            addCriterion("price_selling <", value, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceSellingLessThanOrEqualTo(Double value) {
            addCriterion("price_selling <=", value, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceSellingIn(List<Double> values) {
            addCriterion("price_selling in", values, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceSellingNotIn(List<Double> values) {
            addCriterion("price_selling not in", values, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceSellingBetween(Double value1, Double value2) {
            addCriterion("price_selling between", value1, value2, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceSellingNotBetween(Double value1, Double value2) {
            addCriterion("price_selling not between", value1, value2, "priceSelling");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalIsNull() {
            addCriterion("price_original is null");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalIsNotNull() {
            addCriterion("price_original is not null");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalEqualTo(Double value) {
            addCriterion("price_original =", value, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalNotEqualTo(Double value) {
            addCriterion("price_original <>", value, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalGreaterThan(Double value) {
            addCriterion("price_original >", value, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalGreaterThanOrEqualTo(Double value) {
            addCriterion("price_original >=", value, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalLessThan(Double value) {
            addCriterion("price_original <", value, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalLessThanOrEqualTo(Double value) {
            addCriterion("price_original <=", value, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalIn(List<Double> values) {
            addCriterion("price_original in", values, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalNotIn(List<Double> values) {
            addCriterion("price_original not in", values, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalBetween(Double value1, Double value2) {
            addCriterion("price_original between", value1, value2, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andPriceOriginalNotBetween(Double value1, Double value2) {
            addCriterion("price_original not between", value1, value2, "priceOriginal");
            return (Criteria) this;
        }

        public Criteria andImgIsNull() {
            addCriterion("img is null");
            return (Criteria) this;
        }

        public Criteria andImgIsNotNull() {
            addCriterion("img is not null");
            return (Criteria) this;
        }

        public Criteria andImgEqualTo(String value) {
            addCriterion("img =", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgNotEqualTo(String value) {
            addCriterion("img <>", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgGreaterThan(String value) {
            addCriterion("img >", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgGreaterThanOrEqualTo(String value) {
            addCriterion("img >=", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgLessThan(String value) {
            addCriterion("img <", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgLessThanOrEqualTo(String value) {
            addCriterion("img <=", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgLike(String value) {
            addCriterion("img like", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgNotLike(String value) {
            addCriterion("img not like", value, "img");
            return (Criteria) this;
        }

        public Criteria andImgIn(List<String> values) {
            addCriterion("img in", values, "img");
            return (Criteria) this;
        }

        public Criteria andImgNotIn(List<String> values) {
            addCriterion("img not in", values, "img");
            return (Criteria) this;
        }

        public Criteria andImgBetween(String value1, String value2) {
            addCriterion("img between", value1, value2, "img");
            return (Criteria) this;
        }

        public Criteria andImgNotBetween(String value1, String value2) {
            addCriterion("img not between", value1, value2, "img");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNull() {
            addCriterion("description is null");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNotNull() {
            addCriterion("description is not null");
            return (Criteria) this;
        }

        public Criteria andDescriptionEqualTo(String value) {
            addCriterion("description =", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotEqualTo(String value) {
            addCriterion("description <>", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThan(String value) {
            addCriterion("description >", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("description >=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThan(String value) {
            addCriterion("description <", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThanOrEqualTo(String value) {
            addCriterion("description <=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLike(String value) {
            addCriterion("description like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotLike(String value) {
            addCriterion("description not like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionIn(List<String> values) {
            addCriterion("description in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotIn(List<String> values) {
            addCriterion("description not in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionBetween(String value1, String value2) {
            addCriterion("description between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotBetween(String value1, String value2) {
            addCriterion("description not between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andDirectoryIsNull() {
            addCriterion("directory is null");
            return (Criteria) this;
        }

        public Criteria andDirectoryIsNotNull() {
            addCriterion("directory is not null");
            return (Criteria) this;
        }

        public Criteria andDirectoryEqualTo(String value) {
            addCriterion("directory =", value, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryNotEqualTo(String value) {
            addCriterion("directory <>", value, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryGreaterThan(String value) {
            addCriterion("directory >", value, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryGreaterThanOrEqualTo(String value) {
            addCriterion("directory >=", value, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryLessThan(String value) {
            addCriterion("directory <", value, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryLessThanOrEqualTo(String value) {
            addCriterion("directory <=", value, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryLike(String value) {
            addCriterion("directory like", value, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryNotLike(String value) {
            addCriterion("directory not like", value, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryIn(List<String> values) {
            addCriterion("directory in", values, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryNotIn(List<String> values) {
            addCriterion("directory not in", values, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryBetween(String value1, String value2) {
            addCriterion("directory between", value1, value2, "directory");
            return (Criteria) this;
        }

        public Criteria andDirectoryNotBetween(String value1, String value2) {
            addCriterion("directory not between", value1, value2, "directory");
            return (Criteria) this;
        }

        public Criteria andAuthorIsNull() {
            addCriterion("author is null");
            return (Criteria) this;
        }

        public Criteria andAuthorIsNotNull() {
            addCriterion("author is not null");
            return (Criteria) this;
        }

        public Criteria andAuthorEqualTo(String value) {
            addCriterion("author =", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotEqualTo(String value) {
            addCriterion("author <>", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorGreaterThan(String value) {
            addCriterion("author >", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorGreaterThanOrEqualTo(String value) {
            addCriterion("author >=", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLessThan(String value) {
            addCriterion("author <", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLessThanOrEqualTo(String value) {
            addCriterion("author <=", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLike(String value) {
            addCriterion("author like", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotLike(String value) {
            addCriterion("author not like", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorIn(List<String> values) {
            addCriterion("author in", values, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotIn(List<String> values) {
            addCriterion("author not in", values, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorBetween(String value1, String value2) {
            addCriterion("author between", value1, value2, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotBetween(String value1, String value2) {
            addCriterion("author not between", value1, value2, "author");
            return (Criteria) this;
        }

        public Criteria andTimePublishIsNull() {
            addCriterion("time_publish is null");
            return (Criteria) this;
        }

        public Criteria andTimePublishIsNotNull() {
            addCriterion("time_publish is not null");
            return (Criteria) this;
        }

        public Criteria andTimePublishEqualTo(Date value) {
            addCriterion("time_publish =", value, "timePublish");
            return (Criteria) this;
        }

        public Criteria andTimePublishNotEqualTo(Date value) {
            addCriterion("time_publish <>", value, "timePublish");
            return (Criteria) this;
        }

        public Criteria andTimePublishGreaterThan(Date value) {
            addCriterion("time_publish >", value, "timePublish");
            return (Criteria) this;
        }

        public Criteria andTimePublishGreaterThanOrEqualTo(Date value) {
            addCriterion("time_publish >=", value, "timePublish");
            return (Criteria) this;
        }

        public Criteria andTimePublishLessThan(Date value) {
            addCriterion("time_publish <", value, "timePublish");
            return (Criteria) this;
        }

        public Criteria andTimePublishLessThanOrEqualTo(Date value) {
            addCriterion("time_publish <=", value, "timePublish");
            return (Criteria) this;
        }

        public Criteria andTimePublishIn(List<Date> values) {
            addCriterion("time_publish in", values, "timePublish");
            return (Criteria) this;
        }

        public Criteria andTimePublishNotIn(List<Date> values) {
            addCriterion("time_publish not in", values, "timePublish");
            return (Criteria) this;
        }

        public Criteria andTimePublishBetween(Date value1, Date value2) {
            addCriterion("time_publish between", value1, value2, "timePublish");
            return (Criteria) this;
        }

        public Criteria andTimePublishNotBetween(Date value1, Date value2) {
            addCriterion("time_publish not between", value1, value2, "timePublish");
            return (Criteria) this;
        }

        public Criteria andPublisherIsNull() {
            addCriterion("publisher is null");
            return (Criteria) this;
        }

        public Criteria andPublisherIsNotNull() {
            addCriterion("publisher is not null");
            return (Criteria) this;
        }

        public Criteria andPublisherEqualTo(String value) {
            addCriterion("publisher =", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotEqualTo(String value) {
            addCriterion("publisher <>", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherGreaterThan(String value) {
            addCriterion("publisher >", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherGreaterThanOrEqualTo(String value) {
            addCriterion("publisher >=", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherLessThan(String value) {
            addCriterion("publisher <", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherLessThanOrEqualTo(String value) {
            addCriterion("publisher <=", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherLike(String value) {
            addCriterion("publisher like", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotLike(String value) {
            addCriterion("publisher not like", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherIn(List<String> values) {
            addCriterion("publisher in", values, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotIn(List<String> values) {
            addCriterion("publisher not in", values, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherBetween(String value1, String value2) {
            addCriterion("publisher between", value1, value2, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotBetween(String value1, String value2) {
            addCriterion("publisher not between", value1, value2, "publisher");
            return (Criteria) this;
        }

        public Criteria andCtCodeIsNull() {
            addCriterion("ct_code is null");
            return (Criteria) this;
        }

        public Criteria andCtCodeIsNotNull() {
            addCriterion("ct_code is not null");
            return (Criteria) this;
        }

        public Criteria andCtCodeEqualTo(String value) {
            addCriterion("ct_code =", value, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeNotEqualTo(String value) {
            addCriterion("ct_code <>", value, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeGreaterThan(String value) {
            addCriterion("ct_code >", value, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeGreaterThanOrEqualTo(String value) {
            addCriterion("ct_code >=", value, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeLessThan(String value) {
            addCriterion("ct_code <", value, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeLessThanOrEqualTo(String value) {
            addCriterion("ct_code <=", value, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeLike(String value) {
            addCriterion("ct_code like", value, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeNotLike(String value) {
            addCriterion("ct_code not like", value, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeIn(List<String> values) {
            addCriterion("ct_code in", values, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeNotIn(List<String> values) {
            addCriterion("ct_code not in", values, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeBetween(String value1, String value2) {
            addCriterion("ct_code between", value1, value2, "ctCode");
            return (Criteria) this;
        }

        public Criteria andCtCodeNotBetween(String value1, String value2) {
            addCriterion("ct_code not between", value1, value2, "ctCode");
            return (Criteria) this;
        }

        public Criteria andRateIsNull() {
            addCriterion("rate is null");
            return (Criteria) this;
        }

        public Criteria andRateIsNotNull() {
            addCriterion("rate is not null");
            return (Criteria) this;
        }

        public Criteria andRateEqualTo(Integer value) {
            addCriterion("rate =", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotEqualTo(Integer value) {
            addCriterion("rate <>", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateGreaterThan(Integer value) {
            addCriterion("rate >", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateGreaterThanOrEqualTo(Integer value) {
            addCriterion("rate >=", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateLessThan(Integer value) {
            addCriterion("rate <", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateLessThanOrEqualTo(Integer value) {
            addCriterion("rate <=", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateIn(List<Integer> values) {
            addCriterion("rate in", values, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotIn(List<Integer> values) {
            addCriterion("rate not in", values, "rate");
            return (Criteria) this;
        }

        public Criteria andRateBetween(Integer value1, Integer value2) {
            addCriterion("rate between", value1, value2, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotBetween(Integer value1, Integer value2) {
            addCriterion("rate not between", value1, value2, "rate");
            return (Criteria) this;
        }

        public Criteria andIsHotIsNull() {
            addCriterion("is_hot is null");
            return (Criteria) this;
        }

        public Criteria andIsHotIsNotNull() {
            addCriterion("is_hot is not null");
            return (Criteria) this;
        }

        public Criteria andIsHotEqualTo(Integer value) {
            addCriterion("is_hot =", value, "isHot");
            return (Criteria) this;
        }

        public Criteria andIsHotNotEqualTo(Integer value) {
            addCriterion("is_hot <>", value, "isHot");
            return (Criteria) this;
        }

        public Criteria andIsHotGreaterThan(Integer value) {
            addCriterion("is_hot >", value, "isHot");
            return (Criteria) this;
        }

        public Criteria andIsHotGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_hot >=", value, "isHot");
            return (Criteria) this;
        }

        public Criteria andIsHotLessThan(Integer value) {
            addCriterion("is_hot <", value, "isHot");
            return (Criteria) this;
        }

        public Criteria andIsHotLessThanOrEqualTo(Integer value) {
            addCriterion("is_hot <=", value, "isHot");
            return (Criteria) this;
        }

        public Criteria andIsHotIn(List<Integer> values) {
            addCriterion("is_hot in", values, "isHot");
            return (Criteria) this;
        }

        public Criteria andIsHotNotIn(List<Integer> values) {
            addCriterion("is_hot not in", values, "isHot");
            return (Criteria) this;
        }

        public Criteria andIsHotBetween(Integer value1, Integer value2) {
            addCriterion("is_hot between", value1, value2, "isHot");
            return (Criteria) this;
        }

        public Criteria andIsHotNotBetween(Integer value1, Integer value2) {
            addCriterion("is_hot not between", value1, value2, "isHot");
            return (Criteria) this;
        }

        public Criteria andCategoryidIsNull() {
            addCriterion("categoryid is null");
            return (Criteria) this;
        }

        public Criteria andCategoryidIsNotNull() {
            addCriterion("categoryid is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryidEqualTo(String value) {
            addCriterion("categoryid =", value, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidNotEqualTo(String value) {
            addCriterion("categoryid <>", value, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidGreaterThan(String value) {
            addCriterion("categoryid >", value, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidGreaterThanOrEqualTo(String value) {
            addCriterion("categoryid >=", value, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidLessThan(String value) {
            addCriterion("categoryid <", value, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidLessThanOrEqualTo(String value) {
            addCriterion("categoryid <=", value, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidLike(String value) {
            addCriterion("categoryid like", value, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidNotLike(String value) {
            addCriterion("categoryid not like", value, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidIn(List<String> values) {
            addCriterion("categoryid in", values, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidNotIn(List<String> values) {
            addCriterion("categoryid not in", values, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidBetween(String value1, String value2) {
            addCriterion("categoryid between", value1, value2, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryidNotBetween(String value1, String value2) {
            addCriterion("categoryid not between", value1, value2, "categoryid");
            return (Criteria) this;
        }

        public Criteria andCategoryIsNull() {
            addCriterion("category is null");
            return (Criteria) this;
        }

        public Criteria andCategoryIsNotNull() {
            addCriterion("category is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryEqualTo(String value) {
            addCriterion("category =", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryNotEqualTo(String value) {
            addCriterion("category <>", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryGreaterThan(String value) {
            addCriterion("category >", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryGreaterThanOrEqualTo(String value) {
            addCriterion("category >=", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryLessThan(String value) {
            addCriterion("category <", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryLessThanOrEqualTo(String value) {
            addCriterion("category <=", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryLike(String value) {
            addCriterion("category like", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryNotLike(String value) {
            addCriterion("category not like", value, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryIn(List<String> values) {
            addCriterion("category in", values, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryNotIn(List<String> values) {
            addCriterion("category not in", values, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryBetween(String value1, String value2) {
            addCriterion("category between", value1, value2, "category");
            return (Criteria) this;
        }

        public Criteria andCategoryNotBetween(String value1, String value2) {
            addCriterion("category not between", value1, value2, "category");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeIsNull() {
            addCriterion("modify_time is null");
            return (Criteria) this;
        }

        public Criteria andModifyTimeIsNotNull() {
            addCriterion("modify_time is not null");
            return (Criteria) this;
        }

        public Criteria andModifyTimeEqualTo(Date value) {
            addCriterion("modify_time =", value, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeNotEqualTo(Date value) {
            addCriterion("modify_time <>", value, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeGreaterThan(Date value) {
            addCriterion("modify_time >", value, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("modify_time >=", value, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeLessThan(Date value) {
            addCriterion("modify_time <", value, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeLessThanOrEqualTo(Date value) {
            addCriterion("modify_time <=", value, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeIn(List<Date> values) {
            addCriterion("modify_time in", values, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeNotIn(List<Date> values) {
            addCriterion("modify_time not in", values, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeBetween(Date value1, Date value2) {
            addCriterion("modify_time between", value1, value2, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andModifyTimeNotBetween(Date value1, Date value2) {
            addCriterion("modify_time not between", value1, value2, "modifyTime");
            return (Criteria) this;
        }

        public Criteria andVersionIsNull() {
            addCriterion("version is null");
            return (Criteria) this;
        }

        public Criteria andVersionIsNotNull() {
            addCriterion("version is not null");
            return (Criteria) this;
        }

        public Criteria andVersionEqualTo(Integer value) {
            addCriterion("version =", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotEqualTo(Integer value) {
            addCriterion("version <>", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThan(Integer value) {
            addCriterion("version >", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThanOrEqualTo(Integer value) {
            addCriterion("version >=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThan(Integer value) {
            addCriterion("version <", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThanOrEqualTo(Integer value) {
            addCriterion("version <=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionIn(List<Integer> values) {
            addCriterion("version in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotIn(List<Integer> values) {
            addCriterion("version not in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionBetween(Integer value1, Integer value2) {
            addCriterion("version between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotBetween(Integer value1, Integer value2) {
            addCriterion("version not between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andPrintDateIsNull() {
            addCriterion("print_date is null");
            return (Criteria) this;
        }

        public Criteria andPrintDateIsNotNull() {
            addCriterion("print_date is not null");
            return (Criteria) this;
        }

        public Criteria andPrintDateEqualTo(Date value) {
            addCriterionForJDBCDate("print_date =", value, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintDateNotEqualTo(Date value) {
            addCriterionForJDBCDate("print_date <>", value, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintDateGreaterThan(Date value) {
            addCriterionForJDBCDate("print_date >", value, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintDateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("print_date >=", value, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintDateLessThan(Date value) {
            addCriterionForJDBCDate("print_date <", value, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintDateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("print_date <=", value, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintDateIn(List<Date> values) {
            addCriterionForJDBCDate("print_date in", values, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintDateNotIn(List<Date> values) {
            addCriterionForJDBCDate("print_date not in", values, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintDateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("print_date between", value1, value2, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintDateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("print_date not between", value1, value2, "printDate");
            return (Criteria) this;
        }

        public Criteria andPrintTimeIsNull() {
            addCriterion("print_time is null");
            return (Criteria) this;
        }

        public Criteria andPrintTimeIsNotNull() {
            addCriterion("print_time is not null");
            return (Criteria) this;
        }

        public Criteria andPrintTimeEqualTo(Integer value) {
            addCriterion("print_time =", value, "printTime");
            return (Criteria) this;
        }

        public Criteria andPrintTimeNotEqualTo(Integer value) {
            addCriterion("print_time <>", value, "printTime");
            return (Criteria) this;
        }

        public Criteria andPrintTimeGreaterThan(Integer value) {
            addCriterion("print_time >", value, "printTime");
            return (Criteria) this;
        }

        public Criteria andPrintTimeGreaterThanOrEqualTo(Integer value) {
            addCriterion("print_time >=", value, "printTime");
            return (Criteria) this;
        }

        public Criteria andPrintTimeLessThan(Integer value) {
            addCriterion("print_time <", value, "printTime");
            return (Criteria) this;
        }

        public Criteria andPrintTimeLessThanOrEqualTo(Integer value) {
            addCriterion("print_time <=", value, "printTime");
            return (Criteria) this;
        }

        public Criteria andPrintTimeIn(List<Integer> values) {
            addCriterion("print_time in", values, "printTime");
            return (Criteria) this;
        }

        public Criteria andPrintTimeNotIn(List<Integer> values) {
            addCriterion("print_time not in", values, "printTime");
            return (Criteria) this;
        }

        public Criteria andPrintTimeBetween(Integer value1, Integer value2) {
            addCriterion("print_time between", value1, value2, "printTime");
            return (Criteria) this;
        }

        public Criteria andPrintTimeNotBetween(Integer value1, Integer value2) {
            addCriterion("print_time not between", value1, value2, "printTime");
            return (Criteria) this;
        }

        public Criteria andPagecountIsNull() {
            addCriterion("pagecount is null");
            return (Criteria) this;
        }

        public Criteria andPagecountIsNotNull() {
            addCriterion("pagecount is not null");
            return (Criteria) this;
        }

        public Criteria andPagecountEqualTo(Integer value) {
            addCriterion("pagecount =", value, "pagecount");
            return (Criteria) this;
        }

        public Criteria andPagecountNotEqualTo(Integer value) {
            addCriterion("pagecount <>", value, "pagecount");
            return (Criteria) this;
        }

        public Criteria andPagecountGreaterThan(Integer value) {
            addCriterion("pagecount >", value, "pagecount");
            return (Criteria) this;
        }

        public Criteria andPagecountGreaterThanOrEqualTo(Integer value) {
            addCriterion("pagecount >=", value, "pagecount");
            return (Criteria) this;
        }

        public Criteria andPagecountLessThan(Integer value) {
            addCriterion("pagecount <", value, "pagecount");
            return (Criteria) this;
        }

        public Criteria andPagecountLessThanOrEqualTo(Integer value) {
            addCriterion("pagecount <=", value, "pagecount");
            return (Criteria) this;
        }

        public Criteria andPagecountIn(List<Integer> values) {
            addCriterion("pagecount in", values, "pagecount");
            return (Criteria) this;
        }

        public Criteria andPagecountNotIn(List<Integer> values) {
            addCriterion("pagecount not in", values, "pagecount");
            return (Criteria) this;
        }

        public Criteria andPagecountBetween(Integer value1, Integer value2) {
            addCriterion("pagecount between", value1, value2, "pagecount");
            return (Criteria) this;
        }

        public Criteria andPagecountNotBetween(Integer value1, Integer value2) {
            addCriterion("pagecount not between", value1, value2, "pagecount");
            return (Criteria) this;
        }

        public Criteria andBooksizeIsNull() {
            addCriterion("booksize is null");
            return (Criteria) this;
        }

        public Criteria andBooksizeIsNotNull() {
            addCriterion("booksize is not null");
            return (Criteria) this;
        }

        public Criteria andBooksizeEqualTo(String value) {
            addCriterion("booksize =", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeNotEqualTo(String value) {
            addCriterion("booksize <>", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeGreaterThan(String value) {
            addCriterion("booksize >", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeGreaterThanOrEqualTo(String value) {
            addCriterion("booksize >=", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeLessThan(String value) {
            addCriterion("booksize <", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeLessThanOrEqualTo(String value) {
            addCriterion("booksize <=", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeLike(String value) {
            addCriterion("booksize like", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeNotLike(String value) {
            addCriterion("booksize not like", value, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeIn(List<String> values) {
            addCriterion("booksize in", values, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeNotIn(List<String> values) {
            addCriterion("booksize not in", values, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeBetween(String value1, String value2) {
            addCriterion("booksize between", value1, value2, "booksize");
            return (Criteria) this;
        }

        public Criteria andBooksizeNotBetween(String value1, String value2) {
            addCriterion("booksize not between", value1, value2, "booksize");
            return (Criteria) this;
        }

        public Criteria andPackIsNull() {
            addCriterion("pack is null");
            return (Criteria) this;
        }

        public Criteria andPackIsNotNull() {
            addCriterion("pack is not null");
            return (Criteria) this;
        }

        public Criteria andPackEqualTo(String value) {
            addCriterion("pack =", value, "pack");
            return (Criteria) this;
        }

        public Criteria andPackNotEqualTo(String value) {
            addCriterion("pack <>", value, "pack");
            return (Criteria) this;
        }

        public Criteria andPackGreaterThan(String value) {
            addCriterion("pack >", value, "pack");
            return (Criteria) this;
        }

        public Criteria andPackGreaterThanOrEqualTo(String value) {
            addCriterion("pack >=", value, "pack");
            return (Criteria) this;
        }

        public Criteria andPackLessThan(String value) {
            addCriterion("pack <", value, "pack");
            return (Criteria) this;
        }

        public Criteria andPackLessThanOrEqualTo(String value) {
            addCriterion("pack <=", value, "pack");
            return (Criteria) this;
        }

        public Criteria andPackLike(String value) {
            addCriterion("pack like", value, "pack");
            return (Criteria) this;
        }

        public Criteria andPackNotLike(String value) {
            addCriterion("pack not like", value, "pack");
            return (Criteria) this;
        }

        public Criteria andPackIn(List<String> values) {
            addCriterion("pack in", values, "pack");
            return (Criteria) this;
        }

        public Criteria andPackNotIn(List<String> values) {
            addCriterion("pack not in", values, "pack");
            return (Criteria) this;
        }

        public Criteria andPackBetween(String value1, String value2) {
            addCriterion("pack between", value1, value2, "pack");
            return (Criteria) this;
        }

        public Criteria andPackNotBetween(String value1, String value2) {
            addCriterion("pack not between", value1, value2, "pack");
            return (Criteria) this;
        }

        public Criteria andWordcountIsNull() {
            addCriterion("wordcount is null");
            return (Criteria) this;
        }

        public Criteria andWordcountIsNotNull() {
            addCriterion("wordcount is not null");
            return (Criteria) this;
        }

        public Criteria andWordcountEqualTo(Integer value) {
            addCriterion("wordcount =", value, "wordcount");
            return (Criteria) this;
        }

        public Criteria andWordcountNotEqualTo(Integer value) {
            addCriterion("wordcount <>", value, "wordcount");
            return (Criteria) this;
        }

        public Criteria andWordcountGreaterThan(Integer value) {
            addCriterion("wordcount >", value, "wordcount");
            return (Criteria) this;
        }

        public Criteria andWordcountGreaterThanOrEqualTo(Integer value) {
            addCriterion("wordcount >=", value, "wordcount");
            return (Criteria) this;
        }

        public Criteria andWordcountLessThan(Integer value) {
            addCriterion("wordcount <", value, "wordcount");
            return (Criteria) this;
        }

        public Criteria andWordcountLessThanOrEqualTo(Integer value) {
            addCriterion("wordcount <=", value, "wordcount");
            return (Criteria) this;
        }

        public Criteria andWordcountIn(List<Integer> values) {
            addCriterion("wordcount in", values, "wordcount");
            return (Criteria) this;
        }

        public Criteria andWordcountNotIn(List<Integer> values) {
            addCriterion("wordcount not in", values, "wordcount");
            return (Criteria) this;
        }

        public Criteria andWordcountBetween(Integer value1, Integer value2) {
            addCriterion("wordcount between", value1, value2, "wordcount");
            return (Criteria) this;
        }

        public Criteria andWordcountNotBetween(Integer value1, Integer value2) {
            addCriterion("wordcount not between", value1, value2, "wordcount");
            return (Criteria) this;
        }

        public Criteria andPaperIsNull() {
            addCriterion("paper is null");
            return (Criteria) this;
        }

        public Criteria andPaperIsNotNull() {
            addCriterion("paper is not null");
            return (Criteria) this;
        }

        public Criteria andPaperEqualTo(String value) {
            addCriterion("paper =", value, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperNotEqualTo(String value) {
            addCriterion("paper <>", value, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperGreaterThan(String value) {
            addCriterion("paper >", value, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperGreaterThanOrEqualTo(String value) {
            addCriterion("paper >=", value, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperLessThan(String value) {
            addCriterion("paper <", value, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperLessThanOrEqualTo(String value) {
            addCriterion("paper <=", value, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperLike(String value) {
            addCriterion("paper like", value, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperNotLike(String value) {
            addCriterion("paper not like", value, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperIn(List<String> values) {
            addCriterion("paper in", values, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperNotIn(List<String> values) {
            addCriterion("paper not in", values, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperBetween(String value1, String value2) {
            addCriterion("paper between", value1, value2, "paper");
            return (Criteria) this;
        }

        public Criteria andPaperNotBetween(String value1, String value2) {
            addCriterion("paper not between", value1, value2, "paper");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}